HAL CORTEX migration: List of applicable concepts ¶
This section provides information about the HAL CORTEX applicable concepts .
Concepts for CORTEX ¶
|
Concept |
Description |
|---|---|
|
Unitary APIs have been introduced, primarily in the MPU section, to provide finer control over the configuration. |
|
|
All TypeDef parts of the HAL CORTEX driver have been removed and replaced by
|
|
|
Const keywords have been added to non-modifiable pointers to ensure that either the pointer itself or the data it points to cannot be modified. This enhances code safety and readability, prevents unintended modifications, and renders code more robust and maintainable. |
|
|
Implement parameter and state checks using assertions to ensure that conditions are met during development and debugging, improving code reliability and maintainability. |
|
|
For example:
|
|
|
Replace Finite Parameter Defines (Including PPP Instances) with Enum Types at HAL Levels. |
Replace finite parameters, such as peripheral instances, with enumerated types at the HAL level to improve type safety, readability, and maintainability. |
Other HAL CORTEX changes ¶
|
ARM Architecture |
Concept |
Consideration |
|---|---|---|
|
All |
Remove LL CORTEX |
Redundant functionality between LL driver and ARM CMSIS core APIs. |
|
All |
Add
|
Introduce a symmetric API to retrieve the priority of an interrupt, complementing the existing API to set the priority, ensuring consistency and completeness in the NVIC API set. |
|
All |
Merge systick clock source configuration
|
Add source clock as parameter to the
|
|
All |
Replace Ticks_num (expressed in time) by ticks_freq (expressed in frequency). |
Update the SysTick configuration to use frequency-based parameters instead of time-based parameters, providing a more intuitive and consistent approach to configuring the SysTick timer. |
|
All |
Remove unapplicable ARM cortex attributes within STM32 devices. |
Remove shareability attribute, transient attribute and L2 cache configuration. |
|
All |
Add APIs to be used in memory protection unit (MPU). |
|
|
All |
Add getter for CPU ID information(provided within
|
|
|
All |
Split the MPU region configuration from the enable/disable. |
|
|
ARMv8-M ARMv7-M |
Add missing APIs in NVIC for IRQ management (provided by core_cm33.h) |
|
|
ARMv8-M |
Abstract
|
Simplify the configuration of memory attributes by abstracting the
|
|
ARMv8-M |
Split memory attribute API (device configuration vs normal configuration) |
Dedicated function for device memory attributes memory:
Dedicated function for normal memory attributes memory:
|
|
ARMv8-M ARMv7-M |
Add cortex faults exception management |
|